| Miles Sound System SDK 7.2a |
The term ‘Extended MIDI,' or ‘XMIDI,' refers to the set of features added to the base Musical Instrument Digital Interface (MIDI) data specification by the drivers and utility programs included with the Miles Sound System's Version 2.00 release. The XMIDI standard brings many powerful features to the Miles Sound System which would otherwise be absent in a system conforming to the original MIDI standard.
Composers who are interested in getting started with XMIDI should pay particular attention to the descriptions of the Miles Sound Studio and MIDIECHO in the Tools-Reference Section, before moving on to the specific discussions of the Extended MIDI controllers below. It is strongly recommended that musicians with even the slightest programming knowledge (or interest) examine the XMIDI Services section as well, in order to gain the best possible understanding of the Miles Sound System's capabilities.
Programmers seeking to master effective Miles Sound System application design are also advised to familiarize themselves with the Tools-Reference section, followed by a perusal of the XMIDI Services section.
Also useful to both XMIDI composers and programmers would be a good understanding of the new DLS features found in the Miles Sound System. This information can be found in the DLS Services Section.
| XMIDI Services | |
|---|---|
| AIL_open_XMIDI_driver | opens an driver handle to play XMIDI data files through. |
| MILES_OPEN_XMIDI_FLAGS | specifies open flags for the AIL_open_XMIDI_driver function. |
| AIL_close_XMIDI_driver | shuts down and closes a MIDI music driver which was opened by a previous call to AIL_open_XMIDI_driver. |
| AIL_MIDI_handle_release | temporarily releases the hardware MIDI handle (the HMIDIOUT handle or the QuickTime MIDI handle) back to the system. |
| AIL_MIDI_handle_reacquire | attempts to reacquire the hardware MIDI handle (the HMIDIOUT handle or the QuickTime MIDI handle) from the system. |
| AIL_set_XMIDI_master_volume | establishes an overall `master volume` value which is used to scale the volumes of all subsequent XMIDI note events in all sequences. |
| AIL_XMIDI_master_volume | returns the current XMIDI master volume setting in use. |
| AIL_allocate_sequence_handle | searches for a free sequence handle and returns it to the application for use in the playback of XMIDI audio data. |
| AIL_release_sequence_handle | frees a sequence handle for later allocation by AIL_allocate_sequence_handle. |
| AIL_init_sequence | prepares a sequence handle for playback of XMIDI sequence data, and allows the application to specify the starting address and sequence number of the XMIDI sequence to be played. |
| AIL_start_sequence | starts playback of a sequence from its beginning. |
| AIL_stop_sequence | stops playback of a sequence. |
| AIL_resume_sequence | resumes playback of a sequence which was previously stopped. |
| AIL_end_sequence | terminates playback of a sequence, setting its status to SEQ_DONE<*MILES_SEQUENCE_STATUS>. |
| AIL_set_sequence_tempo | specifies an increase or decrease in the normal playback tempo of a sequence. |
| AIL_sequence_tempo | returns the current relative tempo percentage for a sequence. |
| AIL_set_sequence_volume | establishes a scaling factor for the value of each MIDI Part Volume Control Change (controller 7) event occurring in a sequence. |
| AIL_sequence_volume | returns the current sequence volume scaling value, from 0 (minimum) to 127 (maximum). |
| AIL_set_sequence_loop_count | arranges for a sequence to be restarted immediately upon completion, for a total of two or more iterations. |
| AIL_sequence_loop_count | returns the number of loop iterations remaining for the given sequence. |
| AIL_branch_index | moves a sequence's data pointers to the location of a specified XMIDI Sequence Branch Index controller. |
| AIL_sequence_position | returns the number of beats and measures elapsed since a given XMIDI sequence began playing. |
| AIL_set_sequence_ms_position | moves the current playback position of a sequence to the specified millisecond count. |
| AIL_sequence_ms_position | returns the current playback position and length of the sequence in milliseconds. |
| AIL_set_sequence_user_data | sets a value for one of eight user data entries associated with each sequence handle. |
| AIL_sequence_user_data | retrieves a value for one of eight user data entries associated with each sequence handle. |
| AIL_sequence_status | returns the status of a given sequence handle. |
| MILES_SEQUENCE_STATUS | indicates the status of an XMIDI handle. |
| AIL_create_wave_synthesizer | creates a `virtual wave synthesizer` by associating an XMIDI driver with a digital audio driver and a library file containing digital audio samples assigned to various MIDI patches. |
| AIL_destroy_wave_synthesizer | destroys a `virtual wave synthesizer` instance created by a previous call to the AIL_create_wave_synthesizer function. |
| AIL_MDI_driver_type | reports the MIDI synthesis technology available with a specified. |
| MILES_MDI_DRIVER_TYPE | describes the type of DOS MIDI driver. |
| AIL_set_GTL_filename_prefix | informs MSS of the prefix portion of all Global Timbre Library filenames which are associated with a particular application. |
| AIL_timbre_status | checks to see if a given timbre (synthesizer instrument) is loaded. |
| AIL_install_timbre | forces the driver to install a single timbre (synthesizer instrument), allowing it to be used for performance in a channel of an Extended MIDI (XMIDI) sequence which contains an XMIDI Patch Bank Select controller (114) with the value bank followed by a MIDI Program Change (Patch) message with the value patch. |
| AIL_protect_timbre | prevents the timbre bank, patch from being discarded from the synthesizer memory or local timbre cache. |
| AIL_unprotect_timbre | disables timbre protection for the timbre bank, patch, subjecting the timbre to the action of the normal timbre replacement algorithm. |
| AIL_active_sequence_count | returns the number of currently-playing sequences. |
| AIL_controller_value | returns any current MIDI Control Change value for any of the channels used in the specified sequence. |
| MILES_MIDI_VALUE | specifies a MIDI controller that can queried. |
| AIL_channel_notes | returns the number of notes currently turned `on` in a given MIDI channel. |
| AIL_register_prefix_callback | registers an application function to be called whenever an XMIDI Callback Prefix controller (108) is encountered in a playing XMIDI sequence. |
| AILPREFIXCB | specifies a user-defined XMIDI prefix callback. |
| AIL_register_trigger_callback | registers an application function to be called whenever an XMIDI Callback Trigger controller (119) is encountered in a playing XMIDI sequence. |
| AILTRIGGERCB | specifies a user-defined XMIDI trigger callback. |
| AIL_register_sequence_callback | registers an application function to be called immediately upon completion of playback of an XMIDI sequence. |
| AILSEQUENCECB | specifies a user-defined XMIDI end of sequence callback. |
| AIL_register_event_callback | registers an application function to be called immediately prior to processing each XMIDI or MIDI Channel Voice message event associated with a given driver. |
| AILEVENTCB | specifies a user-defined XMIDI event callback. |
| AIL_register_beat_callback | registers an application function to be called each time the relative beat count changes in any sequence played with the given driver. |
| AILBEATCB | specifies a user-defined XMIDI beat callback. |
| AIL_register_timbre_callback | registers an application function to be called immediately prior to installing a timbre with AIL_install_timbre or AIL_init_sequence. |
| AILTIMBRECB | specifies a user-defined XMIDI timbre installation callback. |
| AIL_register_ICA_array | allows the application to declares an array of 128 bytes whose entries may be used to replace XMIDI or MIDI controller values whose controller events are preceded by an XMIDI Indirect Controller Prefix controller (115). |
| AIL_lock_channel | returns an individual MIDI channel number to the application for direct MIDI message transmission, preventing any XMIDI sequence from utilizing that physical channel until its release with AIL_release_channel. |
| AIL_release_channel | returns a MIDI channel previously locked with AIL_lock_channel to the sequence which formerly `owned` it, if any. |
| AIL_map_sequence_channel | causes all events in a given sequence which are associated with a given MIDI channel seq_channel to be transmitted instead on a `remapped` MIDI channel new_channel. |
| AIL_true_sequence_channel | returns the physical MIDI channel number which receives MIDI and XMIDI messages transmitted on a logical channel sequence_channel by a given sequence S. |
| AIL_send_channel_voice_message | transmits any desired MIDI Channel Voice message on any MIDI channel. |
| AIL_send_sysex_message | transmits a System Exclusive message to a MIDI device driver. |
| AIL_midiOutOpen | assigns a Windows Multimedia Extensions low-level midiOut driver (or the MIDI Mapper device) to the Windows MSS API for MIDI music performance. |
| AIL_install_MDI_INI | installs and initializes the currently selected MSS .MDI driver file for XMIDI music performance under DOS. |
| AIL_install_MDI_driver_file | installs and initializes an MSS-compatible .MDI driver file for XMIDI music performance under DOS. |
For technical support, e-mail Miles3@radgametools.com
© Copyright 1991-2007 RAD Game Tools, Inc. All Rights Reserved.